<%--
   zTree
   Copyright (c) 2013 ISPERP
   Version : 1.0.0
 --%>
<%@ tag language="java" pageEncoding="UTF-8"
	trimDirectiveWhitespaces="true"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>


<%@ attribute name="beforeClick" required="false"
	type="java.lang.String"
	description="用于捕获单击节点之前的事件回调函数，并且根据返回值确定是否允许单击操作。默认值：null"%>


<%@ attribute name="onCheck" required="false" type="java.lang.String"
	description="用于捕获 checkbox / radio 被勾选 或 取消勾选的事件回调函数
如果设置了 setting.callback.beforeCheck 方法，且返回 false，将无法触发 onCheck 事件回调函数。
eventjs event 对象
标准的 js event 对象
treeIdString
对应 zTree 的 treeId，便于用户操控
treeNodeJSON
被勾选 或 取消勾选的节点 JSON 数据对象。
默认值：null"%>

<%@ attribute name="onClick" required="false" type="java.lang.String"
	description="用于捕获节点被点击的事件回调函数。如果设置了 setting.callback.beforeClick 方法，且返回 false，将无法触发 onClick 事件回调函数，包含参数(event, treeId, treeNode)。默认值：null"%>

<%@ attribute name="onDblClick" required="false" type="java.lang.String"
	description="用于捕获 zTree 上鼠标双击之后的事件回调函数。如果设置了 setting.callback.beforeDblClick 方法，且返回 false，将无法触发 onDblClick 事件回调函数。默认值：null"%>

<%@ attribute name="beforeCheck" required="false"
	type="java.lang.String"
	description="用于捕获 勾选 或 取消勾选 之前的事件回调函数，并且根据返回值确定是否允许 勾选 或 取消勾选。
	参数treeId（String）对应 zTree 的 treeId，便于用户操控；treeNode（JSON)进行 勾选 或 取消勾选 的节点 JSON 数据对象。
	如果返回 false，将不会改变勾选状态，并且无法触发 onCheck 事件回调函数；默认值：null"%>

<%@ attribute name="onAsyncSuccess" required="false"
	type="java.lang.String"
	description="用于捕获异步加载正常结束的事件回调函数
如果设置了 setting.callback.beforeAsync 方法，且返回 false，将无法触发 onAsyncSuccess(event, treeId, treeNode, msg) / onAsyncError 事件回调函数。
默认值：null"%>

<%@ attribute name="onNodeCreated" required="false"
	type="java.lang.String"
	description="用于捕获节点生成 DOM 后的事件回调函数
v3.x 采用了延迟加载技术，因此对于父节点未展开的子节点来说，初始化后是不会触发此回调函数，直到其父节点被展开
大数据量的节点加载请注意：不设置 onNodeCreated，可以提升一部分初始化性能
默认值：null"%>


<c:set var="callback" scope="request" value="{enable:true" />

<c:if test="${not empty beforeClick}">
	<c:set var="callback" value="${callback},beforeClick:${beforeClick }"
		scope="request" />
</c:if>

<c:if test="${not empty onClick}">
	<c:set var="callback" value="${callback},onClick:${onClick }"
		scope="request" />
</c:if>

<c:if test="${not empty onDblClick}">
	<c:set var="callback" value="${callback},onDblClick:${onDblClick }"
		scope="request" />
</c:if>


<c:if test="${not empty onCheck}">
	<c:set var="callback" value="${callback},onCheck:${onCheck }"
		scope="request" />
</c:if>

<c:if test="${not empty beforeCheck}">
	<c:set var="callback" value="${callback},beforeCheck:${beforeCheck }"
		scope="request" />
</c:if>


<c:set var="callback"
		value="${callback},onAsyncSuccess:function(event, treeId, treeNode, msg){${onAsyncSuccess }eval(treeId+'.afterAsyncSuccess(event, treeId, treeNode, msg);');}" scope="request" />
		
		


<c:if test="${not empty onNodeCreated}">
	<c:set var="callback"
		value="${callback},onNodeCreated:${onNodeCreated }" scope="request" />
</c:if>

<c:set var="callback" scope="request" value="${callback}}" />

